package com.zret.oasys.listener;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TimerTask;

import com.zret.oasys.entity.Attence;
import com.zret.oasys.entity.Emp;
import com.zret.oasys.service.AttendanceService;
import com.zret.oasys.service.impl.AttendanceServiceImpl;

/**
 * 在 TimerManager 这个类里面，大家一定要注意 时间点的问题。如果你设定在凌晨2点执行任务。但你是在2点以后
 *发布的程序或是重启过服务，那这样的情况下，任务会立即执行，而不是等到第二天的凌晨2点执行。为了，避免这种情况
 *发生，只能判断一下，如果发布或重启服务的时间晚于定时执行任务的时间，就在此基础上加一天。
 * @author yuebin
 *
 */
public class NFDFlightDataTimerTask extends TimerTask {
	
	private  SimpleDateFormat simpl = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	@Override
	public void run() {
		//调用考勤业务层
		AttendanceService attendanceService=new AttendanceServiceImpl();
		List<Emp> listEmp = attendanceService.getAttendAndEmpIsEmpid();
		//遍历提取员工id添加到新的list上
		List<Integer> empidList=new ArrayList<Integer>();
		//list有迟到员工的时候才执行
		if (listEmp.size()>0) {
			
			for (Emp emp : listEmp) {
				int empid = emp.getEmpid();
				empidList.add(empid);
			}
			
			
		}
		//有迟到员工id list才执行
		if (empidList.size()>0) {
			for (Integer empid : empidList) {
				//调用当前方法的当前时间
				Date now=new Date();
				String nowString = simpl.format(now);
				//调用添加考勤业务层
				Attence attence=new Attence(empid, nowString, "旷工");
				boolean flag = attendanceService.addAttendance(attence);
				if (flag) {
					System.out.println("员工编号"+empid+"迟到信息添加成功");
				}
				
			}
			
		}else {
			System.out.println("无旷工人员");
		}
		
		
		
		
	}
	
	

}
